iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
SideProject30

年輕人,想玩自己寫!系列 第 28

第二十七章,打包專案,上架去~

  • 分享至 

  • xImage
  •  

畫面還在刻製中,最近剛好比較多事情,工程進度不快。
我們先準備一下明後天會需要的東西:

  1. 包版上架
  2. 商店資訊

其實需要的資訊我們都已經提過了,可以回去看之前的文章
第八章,工程師不寫文件?你要確定餒!上架注意事項(上)
第九章,工程師不寫文件?你要確定餒!上架注意事項(下)

現在我要準備的,就是那些圖片及打包成AAB檔

  • 商店用圖片
    需要的圖片有Icon、截圖。
    截圖方面,第一張要能引人注意,所以會想辨法設計一下。
    另外的截圖可能也先用figma畫出來。
    Icon部份,其實有現成的工具能幫我們把所需要的圖都一次處理完成。
    工具網站:App icon Generator
    他能一口氣生成
  1. Android各解析度Icon
  2. Play console上架用Icon圖
  3. iOS各解析度Icon
  4. iOS各Icon對應json檔
  5. App Connect上架用Icon圖

相當的方便,直接將他產生的mipmap及Assets.xcassets資料夾覆蓋原本的,
就可以換好Icon了,也同時解決了上架要的Icon,不過主題圖還是要自己製作。
一般如果沒有特別目的,我會直接在Icon背後加個素色的背景,製作成1,024 x 500大小的主題圖。
這樣一來,所有需要的圖我們都有了,只要把想好的文案寫入說明欄內,就準備好囉~

  • 打包上架
    前面我們有提過直接用codemagic幫我們完成CI/CD,
    過程中就能幫我們包版及發布到beta版。
    不過我們之前在試著包出Android版本時,
    並沒有產生正式release版需要的keystore,
    那個只是debug版,是無法上架的。
    iOS則沒有這個問題,前面能上到TestFlight的版本,
    只要你是選擇給上架用的選項,那就都可以使用。

Android要包出正式版,我們要先產生我們的keystore
在終端打上

keytool -genkey -v -keystore ~/你的keystore名稱.jks -keyalg RSA \
          -keysize 2048 -validity 10000 -alias 你的alias名稱

如果是windows系統,打開命令提示字元

keytool -genkey -v -keystore %userprofile%\你的keystore名稱.jks ^
          -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 ^
          -alias 你的alias名稱

然後輸入密碼,就建好一個上傳用的keystore了

接著要在專案裡的android資料夾中,和「gradle.properties」同一層的地方,建立一個「key.properties」。
在裡面寫下你的keystore所在的位置、密碼。

in key.properties :

storePassword= 你的密碼(keystore)
keyPassword= 你的密碼(alias)
keyAlias= 你的alias
storeFile= 你的keystore位置

在app資料夾下的build.gradle檔內,加入如下資訊:

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    ...
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            ///原本是signingConfig signingConfigs.debug
            signingConfig signingConfigs.release
        }
    }
}

最後輸入指令:

flutter build appbundle

就可以完成包版囉~

參考
构建和发布为 Android 应用


上一篇
第二十六章,年輕人終究是年輕人
下一篇
第二十八章,結束,是另一個開始。(Play console及ASO)
系列文
年輕人,想玩自己寫!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言